import java.util.*;

public class Main {
    public static List<Character> func(String str1,String str2){
//      遍历str1当中的每一个字符，是否存在str2的字符
//      不存在的放入List
        List<Character> list = new ArrayList<>();
        for (int i = 0; i < str1.length(); i++) {
            char ch = str1.charAt(i);
//          技巧：本来是char类型，并不是字符串类型，拼接一个“”，形成字符串类型
            if(!str2.contains(ch+"")){
               list.add(ch);
            }
        }
        return list;
    }
    public static void main(String[] args) {
       List<Character> ret = func("welcome to cvte","come");
        for (char ch:ret) {
            System.out.print(ch);
        }
    }

    public static void main4(String[] args) {
        ArrayList<Integer> arrayList1 = new ArrayList<>();
        arrayList1.add(10);
        arrayList1.add(20);
        arrayList1.add(30);
//       第一中遍历方式
        System.out.println(arrayList1);
//       第二种遍历方式
        for (int i = 0; i < arrayList1.size(); i++) {
            System.out.print(arrayList1.get(i)+" ");
        }
        System.out.println();
//       第三种方法
//       几集合当中元素类型:要遍历的集合
        for (int x:arrayList1) {
            System.out.print(x+" ");
        }
        System.out.println();
//       第四种方法：迭代器
        Iterator<Integer> it = arrayList1.iterator();
        while (it.hasNext()){
            System.out.print(it.next()+" ");
        }
        System.out.println();
//       第五种方法从后往前
        ListIterator<Integer> it1 = arrayList1.listIterator(arrayList1.size());
        while (it1.hasPrevious()){
            System.out.print(it1.hasPrevious()+" ");
        }
        System.out.println();
    }

    public static void main3(String[] args) {
        ArrayList<Integer> arrayList1 = new ArrayList<>();
        arrayList1.add(10);
        arrayList1.add(20);
        arrayList1.add(30);
        ArrayList<Number> arrayList2 = new ArrayList<>(arrayList1);
        arrayList2.add(66666);
        System.out.println(arrayList2);

//                                  这个截取方法不是产生新的对象
        List<Number> list = arrayList2.subList(0,2);
        System.out.println(list);
//      [10, 20]
        System.out.println("=========");
        list.set(0,11);
        System.out.println(arrayList2);
//      [11, 20, 30, 66666]
        System.out.println(list);
//      [11, 20]
    }

    public static void main2(String[] args) {
        ArrayList<Integer> arrayList1 = new ArrayList<>();
//       以上没有分配内存
        arrayList1.add(1);
//       Add才分配了内存
//       扩容的时候 是1.5倍进行扩容
        List<String> arrayList2 = new ArrayList<>();
    }
    public static void main1(String[] args) {
        MyArrayList myArrayList = new MyArrayList();
        myArrayList.add(1);
        myArrayList.add(2);
        myArrayList.add(3);
        myArrayList.add(4);
        myArrayList.add(5);
        myArrayList.add(6);
        myArrayList.add(7);
        myArrayList.display();

        System.out.println(myArrayList.contains(4));
        System.out.println(myArrayList.indextOf(1));

        myArrayList.remove(3);
        myArrayList.display();
    }

}